package com.aorise.service.bayonet;

import com.aorise.model.bayonet.*;
import com.aorise.service.system.BaseService;
import com.aorise.utils.Page;
import com.aorise.utils.json.InnerResult;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @Auther: zhouhao
 * @Date: 2019/6/19
 * @Description: 卡口service
 */
public interface BayonetService extends BaseService {

    /**
     * 添加卡口
     * @param bayonetModel
     * @return
     */
    boolean addBayonet(BayonetModel bayonetModel);

    /**
     * 分页获取卡口列表
     * @param bayonetPageVO
     * @return
     */
    Page getBayonetByPage(BayonetPageVO bayonetPageVO);

//    /**
//     * 下载导入卡口模板
//     * @param response
//     */
//    void downloadBayonetTemplate(HttpServletResponse response,String templateName);

    /**
     * 导出卡口信息
     * @param bayonetPageVO 入参条件
     * @param response
     */
    void exportBayonet(BayonetPageVO bayonetPageVO, HttpServletResponse response)throws Exception;

    /**
     * 导入卡口信息
     * @param excelFile 导入excel
     */
    InnerResult<String> importBayonet(MultipartFile excelFile);

    /**
     * 卡口详情
     * @param bayonetID 卡口ID
     * @return
     */
    BayonetInfo getBayonetInfo(Integer bayonetID);

    /**
     * 修改卡口信息
     * @param bayonet   修改卡口信息入参
     * @return
     */
    boolean upBayonet(BayonetModel bayonet);

    /**
     * 获取卡口分组情况
     * @return
     */
    List<BayonetGroup> getBayonetGroup();

    /**
     * 通过分组获取一级分组下的卡口和二级分组下的卡口
     * @param groupId   分组ID
     * @return
     */
    List<BayonetVO> getBayonetByGroup(Integer groupId);
}
